package com.zzyk.main.model.pojo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import javax.persistence.Transient;
import java.util.Date;

/**
 * 原始数据
 */
@Data
public class DeviceOriginData {
    private Integer id;

    /**
     * mqtt主题
     */
    private String clientId;

    /**
     * 设备ID
     */
    private Integer deviceId;

    /**
     * 总有功累计电量
     */
    @JsonProperty("总有功累计电量")
    private String workActive;

    /**
     * 总无功累计电量
     */
    @JsonProperty("总无功累计电量")
    private String workReacitive;

    /**
     * 总有功功率
     */
    @JsonProperty("总有功功率")
    private String powerActive;

    /**
     * 总无功功率
     */
    @JsonProperty("总无功功率")
    private String powerReacitive;

    /**
     * 电网频率
     */
    @JsonProperty("电网频率")
    private String frequency;

    /**
     * A相有功电量
     */
    @JsonProperty("A相有功电量")
    private String workActiveA;

    /**
     * B相有功电量
     */
    @JsonProperty("B相有功电量")
    private String workActiveB;

    /**
     * C相有功电量
     */
    @JsonProperty("C相有功电量")
    private String workActiveC;

    /**
     * A相无功电量
     */
    @JsonProperty("A相无功电量")
    private String workReacitiveA;

    /**
     * B相无功电量
     */
    @JsonProperty("B相无功电量")
    private String workReacitiveB;

    /**
     * C相无功电量
     */
    @JsonProperty("C相无功电量")
    private String workReacitiveC;

    /**
     * A相有功功率
     */
    @JsonProperty("A相有功功率")
    private String powerActiveA;

    /**
     * B相有功功率
     */
    @JsonProperty("B相有功功率")
    private String powerActiveB;

    /**
     * C相有功功率
     */
    @JsonProperty("C相有功功率")
    private String powerActiveC;

    /**
     * A相无功功率
     */
    @JsonProperty("A相无功功率")
    private String powerReacitiveA;

    /**
     * B相无功功率
     */
    @JsonProperty("B相无功功率")
    private String powerReacitiveB;

    /**
     * C相无功功率
     */
    @JsonProperty("C相无功功率")
    private String powerReacitiveC;

    /**
     * A相电压
     */
    @JsonProperty("A相电压")
    private String voltageA;

    /**
     * B相电压
     */
    @JsonProperty("B相电压")
    private String voltageB;

    /**
     * C相电压
     */
    @JsonProperty("C相电压")
    private String voltageC;

    /**
     * A相电流
     */
    @JsonProperty("A相电流")
    private String currentA;

    /**
     * B相电流
     */
    @JsonProperty("B相电流")
    private String currentB;

    /**
     * C相电流
     */
    @JsonProperty("C相电流")
    private String currentC;

    /**
     * A相功率因数
     */
    @JsonProperty("A相功率因数")
    private String powerFactorA;

    /**
     * B相功率因数
     */
    @JsonProperty("B相功率因数")
    private String powerFactorB;

    /**
     * C相功率因数
     */
    @JsonProperty("C相功率因数")
    private String powerFactorC;

    /**
     * 数据记录时间
     */
    @Transient
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    /**
     * 主电失电报警  0：正常  1：报警
     */
    private String powerAlarm;

    /**
     * 模块移动报警  0：正常  1：报警
     */
    private String mobileAlarm;

    /**
     * 电能表模块通讯状态 0：正常  1：报警
     */
    private String electricErr;

    /**
     * 电能表状态(具体看IM3318数据手册0006H地址的数据格式)
     */
    private String state;

    /**
     * 总功率因数
     */
    private String cos;

    /**
     * 0.未处理，1.已处理
     */
    private String status;

    /**
     * //1:三相四线 2:三相三线
     */
    private String phaseLine1;

    /**
     * 用电量
     */
    private String work;

    /**
     * 电压偏差
     */
    private String voltageDeviation;

    /**
     * 频率偏差
     */
    private String frequencyDeviation;

    /**
     * 三相不平衡
     */
    private String unblance;

    /**
     * 负载率
     */
    private String loadRate;

    /**
     * 健康指数
     */
    private String health;

    /**
     * 位置偏移 是否开关 1开 0 关
     */
    private Integer positionDeviation;

    /**
     * 功率因数
     */
    private String powerFactor;
    @Transient
    private String standardPower;
}